package object_;

/**
 * @Package: ObjectClass
 * @ClassName: Equal_
 * @Author: x2606
 * @CreateTime: 2022/2/27 22:22
 * @Description: equal和==的区别
 */

public class Equals_ {
    public static void main(String[] args) {
        //在==中，基础数据类型判断值是否相等
        int i=10;
        double n= 10.0;
        System.out.println(i==n);//true

        //==中，引用类型判断地址是否相同
        A a = new A();
        A b=a;
        A c=b;

        System.out.println(a==c);//true
        //===========================================

        //equals只能用于引用类型
        System.out.println("hello".equals("aaa"));//false

//        public boolean equals(Object anObject) {
//            if (this == anObject) {//判断地址是否相同
//                return true;
//            }
//            if (anObject instanceof String) {//判断是否为string类
//                String anotherString = (String)anObject;//向下转型
//                int n = value.length;
//                if (n == anotherString.value.length) {//判断字符长度
//                    char v1[] = value;
//                    char v2[] = anotherString.value;
//                    int i = 0;
//                    while (n-- != 0) {//通过循环，逐一比较字符
//                        if (v1[i] != v2[i])
//                            return false;
//                        i++;
//                    }
//                    return true;//如果相同，返回true
//                }
//            }
//            return false;//否则返回false
//        }
        Integer n1=new Integer(100);
        Integer n2=new Integer(100);
        System.out.println(n1==n2);//false
        System.out.println(n1.equals(n2));//true

    }
}

class A {

}
